import winreg
import uiautomation as auto


def get_wechat_version():
    """
    获取微信注册表中的版本号（返回 16 进制字符串，如 "f254050f"）
    """
    try:
        # 打开微信注册表键
        key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Tencent\Weixin")  # 注意：可能是 "WeChat" 或 "Weixin"
        
        # 读取版本号（可能是整数或字节）
        version_data, _ = winreg.QueryValueEx(key, "Version")
        
        # 确保返回 HEX 字符串（不带 0x 前缀，小写）
        if isinstance(version_data, int):
            hex_version = f"{version_data:08x}"  # 转 8 位 16 进制，补零
        elif isinstance(version_data, bytes):
            hex_version = version_data.hex()     # 字节直接转 HEX
        else:
            raise ValueError("微信版本号不是整数或字节类型")
        
        return hex_version
    except Exception as e:
        print(f"获取微信版本失败: {e}")
        return None

def is_wechat_version_4_or_higher():
    """
    判断当前安装的微信版本是否为主版本4或更高
    """
    hex_version = get_wechat_version()
    if not hex_version:
        print("无法获取微信版本号")
        return False
    
    # 检查版本号是否以F2开头
    return hex_version.upper().startswith("F2")



